{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Datashader is a graphics pipeline system for creating meaningful\n",
    "representations of large datasets quickly and flexibly. Datashader\n",
    "breaks the creation of images into a series of explicit steps that\n",
    "allow computations to be done on intermediate representations.  This\n",
    "approach allows accurate and effective visualizations to be produced\n",
    "automatically without trial-and-error parameter tuning, and also makes\n",
    "it simple for data scientists to focus on particular data and\n",
    "relationships of interest in a principled way.\n",
    "\n",
    "The computation-intensive steps in this process are written in Python\n",
    "but transparently compiled to machine code using [Numba](http://numba.pydata.org) and flexibly\n",
    "distributed across cores and processors using [Dask](http://dask.pydata.org), providing a\n",
    "highly optimized rendering pipeline that makes it practical to work\n",
    "with extremely large datasets even on standard hardware.\n",
    "\n",
    "\n",
    "To make it concrete, here's an example of what datashader code looks like:\n",
    "\n",
    "```python\n",
    "    >>> import datashader as ds\n",
    "    >>> import datashader.transfer_functions as tf\n",
    "    >>> import pandas as pd\n",
    "    >>> df = pd.read_csv('user_data.csv')\n",
    "\n",
    "    >>> cvs = ds.Canvas(plot_width=400, plot_height=400)\n",
    "    >>> agg = cvs.points(df, 'x_col', 'y_col', ds.mean('z_col'))\n",
    "    >>> img = tf.shade(agg, cmap=['lightblue', 'darkblue'], how='log')\n",
    "```\n",
    "\n",
    "This code reads a data file into a Pandas dataframe `df`, and then\n",
    "projects the fields `x_col` and `y_col` onto the x and y dimensions of\n",
    "400x400 grid, aggregating it by the mean value of the `z_col` of each\n",
    "datapoint. The results are rendered into an image where the minimum\n",
    "count will be plotted in `lightblue`, the maximum in `darkblue`, and\n",
    "ranging logarithmically in between.\n",
    "\n",
    "And here are some sample outputs for 300 million points of data (one\n",
    "per person in the USA) from the 2010 census, each constructed using\n",
    "code like the above:\n",
    "\n",
    "<img src=\"assets/images/usa_census.jpg\" alt=\"image\" width=\"1000\" />\n",
    "\n",
    "<img src=\"assets/images/nyc_races.jpg\" alt=\"image\" width=\"1000\" />\n",
    "\n",
    "<img src=\"assets/images/sym_attractors.jpg\" alt=\"image\" width=\"1000\" />\n",
    "\n",
    "           \n",
    "## Installation\n",
    "\n",
    "Please follow the instructions on the [Github repo](https://github.com/bokeh/datashader/tree/master/examples)\n",
    "if you want to reproduce the specific examples on this website, or the ones at [PyViz.org](http://pyviz.org) if you want to try out Datashader together with related plotting tools.\n",
    "\n",
    "\n",
    "\n",
    "## Other resources\n",
    "\n",
    "You can watch a short talk about datashader on YouTube:\n",
    "[Datashader: Revealing the Structure of Genuinely Big Data](https://www.youtube.com/watch?v=6m3CFbKmK_c).\n",
    "The video [Visualizing Billions of Points of Data](http://go2.continuum.io/JN12XH0g0W0Rb300CZ00000) (and its [slides](http://go2.continuum.io/V0Nc000C300W100X20HZhR0))\n",
    "from a February 2016 one-hour talk first introducing Datashader are also\n",
    "available, but do not cover more recent extensions to the library.\n",
    "\n",
    "Some of the original ideas for datashader were developed under the\n",
    "name Abstract Rendering, which is described in a [2014 SPIE VDA paper](http://spie.org/Publications/Proceedings/Paper/10.1117/12.2041200).\n",
    "\n",
    "The source code for datashader is maintained at our [Github site,](https://github.com/bokeh/datashader) and\n",
    "is documented using the API link on this page.\n",
    "\n",
    "We recommend the [Getting Started Guide](getting_started) to learn\n",
    "the basic concepts and start using Datashader as quickly as possible.\n",
    "\n",
    "The [User Guide](user_guide) covers specific topics in more detail.\n",
    "\n",
    "The [API](api) is the definitive guide to each part of\n",
    "Datashader, but the same information is available more conveniently via\n",
    "the `help()` command as needed when using each component.\n",
    "\n",
    "Please feel free to report [issues](https://github.com/bokeh/datashader/issues) or [contribute code](https://help.github.com/articles/about-pull-requests). You are also welcome to chat with the developers on [gitter](https://gitter.im/ioam/holoviews).\n"
   ]
  }
 ],
 "metadata": {
  "language_info": {
   "name": "python",
   "pygments_lexer": "ipython3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
